using System;
using Microsoft.SPOT;

namespace PeteBrown.GeneralMidiUtilities
{
    /// <summary>
    /// General MIDI Instrument patch numbers. Use these in program change messages
    /// if you are targeting the General MIDI sound set.
    /// General MIDI Level 1
    /// Reference: http://www.midi.org/techspecs/gm1sound.php
    /// </summary>
    public enum GeneralMidiInstrumentPrograms
    {
        //Piano
        AcousticGrandPiano,
        BrightAcousticPiano,
        ElectricGrandPiano,
        HonkytonkPiano,
        ElectricPiano1,
        ElectricPiano2,
        Harpsichord,
        Clavinet,

        //Chromatic Percussion
        Celesta,
        Glockenspiel,
        MusicBox,
        Vibraphone,
        Marimba,
        Xylophone,
        TubularBells,
        Dulcimer,

        //Organ
        DrawbarOrgan,
        PercussiveOrgan,
        RockOrgan,
        ChurchOrgan,
        ReedOrgan,
        Accordion,
        Harmonica,
        TangoAccordion,

        //Guitar
        AcousticGuitarNylon,
        AcousticGuitarSteel,
        ElectricGuitarJazz,
        ElectricGuitarClean,
        ElectricGuitarMuted,
        OverdrivenGuitar,
        DistortionGuitar,
        GuitarHarmonics,

        //Bass
        AcousticBass,
        ElectricBassFinger,
        ElectricBassPick,
        FretlessBass,
        SlapBass1,
        SlapBass2,
        SynthBass1,
        SynthBass2,

        //Strings
        Violin,
        Viola,
        Cello,
        Contrabass,
        TremoloStrings,
        PizzicatoStrings,
        OrchestralHarp,
        Timpani,
        StringEnsemble1,
        StringEnsemble2,
        SynthStrings1,
        SynthStrings2,
        ChoirAahs,
        VoiceOohs,
        SynthVoice,
        OrchestraHit,

        //Brass
        Trumpet,
        Trombone,
        Tuba,
        MutedTrumpet,
        FrenchHorn,
        BrassSection,
        SynthBrass1,
        SynthBrass2,

        //Reed
        SopranoSax,
        AltoSax,
        TenorSax,
        BaritoneSax,
        Oboe,
        EnglishHorn,
        Bassoon,
        Clarinet,

        //Pipe
        Piccolo,
        Flute,
        Recorder,
        PanFlute,
        BlownBottle,
        Shakuhachi,
        Whistle,
        Ocarina,

        //Synth Lead
        Lead1Square,
        Lead2Sawtooth,
        Lead3Calliope,
        Lead4Chiff,
        Lead5Charang,
        Lead6Voice,
        Lead7Fifths,
        Lead8BassAndLead,

        //Synth Pad
        Pad1NewAge,
        Pad2Warm,
        Pad3Polysynth,
        Pad4Choir,
        Pad5Bowed,
        Pad6Metallic,
        Pad7Halo,
        Pad8Sweep,

        //Synth Effects
        FX1Rain,
        FX2Soundtrack,
        FX3Crystal,
        FX4Atmosphere,
        FX5Brightness,
        FX6Goblins,
        FX7Echoes,
        FX8SciFi,

        //Ethnic
        EthnicSitar,
        EthnicBanjo,
        EthnicShamisen,
        EthnicKoto,
        EthnicKalimba,
        EthnicBagpipe,
        EthnicFiddle,
        EthnicShanai,

        //Percussive
        PercTinkleBell,
        PercAgogo,
        PercSteelDrums,
        PercWoodblock,
        PercTaikoDrum,
        PercMelodicTom,
        PercSynthDrum,

        //Sound effects
        EffectReverseCymbal,
        EffectGuitarFretNoise,
        EffectBreathNoise,
        EffectSeashore,
        EffectBirdTweet,
        EffectTelephoneRing,
        EffectHelicopter,
        EffectApplause,
        EffectGunshot
    }

}
